package com.ruoyi.college.service.impl;

import com.ruoyi.college.domain.AdminClassTrainingLink;
import com.ruoyi.college.domain.AdministrativeClass;
import com.ruoyi.college.mapper.AdminClassTrainingLinkMapper;
import com.ruoyi.college.mapper.AdministrativeClassMapper;
import com.ruoyi.college.service.IAdministrativeClassService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.mybatis.logging.Logger;
import org.mybatis.logging.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 行政班管理Service业务层处理
 * 
 * @author chenxl
 * @date 2025-05-19
 */
@Service
public class AdministrativeClassServiceImpl implements IAdministrativeClassService
{
    @Autowired
    private AdministrativeClassMapper administrativeClassMapper;

    @Autowired
    private AdminClassTrainingLinkMapper administrativeClassTrainingLinkMapper;
    private static final Logger log = LoggerFactory.getLogger(AdministrativeClassServiceImpl.class);

    /**
     * 查询行政班管理
     * 
     * @param id 行政班管理主键
     * @return 行政班管理
     */
    @Override
    public AdministrativeClass selectAdministrativeClassById(String id)
    {
        return administrativeClassMapper.selectAdministrativeClassById(id);
    }

    /**
     * 查询行政班管理列表
     * 
     * @param administrativeClass 行政班管理
     * @return 行政班管理
     */
    @Override
    public List<AdministrativeClass> selectAdministrativeClassList(AdministrativeClass administrativeClass)
    {
        return administrativeClassMapper.selectAdministrativeClassList(administrativeClass);
    }

    /**
     * 新增行政班管理
     *
     * @param administrativeClass 行政班对象
     * @return 新增后的行政班对象
     */
    @Override
    public AdministrativeClass insertAdministrativeClass(AdministrativeClass administrativeClass) {
        // 设置创建时间与更新时间为当前时间
        Date now = DateUtils.getNowDate();
        administrativeClass.setCreateTime(now);
        administrativeClass.setUpdateTime(now);

        // 执行插入操作（返回受影响的行数）
        int rows = administrativeClassMapper.insertAdministrativeClass(administrativeClass);

        // 插入成功后直接返回对象（假设 ID 和其他字段已正确填充）
        if (rows > 0) {
            return administrativeClass;
        } else {
            return null; // 或抛出异常
        }
    }

    /**
     * 修改行政班管理
     * 
     * @param administrativeClass 行政班管理
     * @return 结果
     */
    @Override
    public AdministrativeClass updateAdministrativeClass(AdministrativeClass administrativeClass) {
        // 1. 设置更新时间为当前时间
        administrativeClass.setUpdateTime(DateUtils.getNowDate());

        // 2. 执行更新操作
        int rows = administrativeClassMapper.updateAdministrativeClass(administrativeClass);

        // 3. 更新成功后返回对象（假设数据库已更新）
        if (rows > 0) {
            return administrativeClass;
        } else {
            return null; // 或抛出异常
        }
    }

    /**
     * 批量删除行政班管理
     * 
     * @param ids 需要删除的行政班管理主键
     * @return 结果
     */
    @Override
    public int deleteAdministrativeClassByIds(String[] ids)
    {
        return administrativeClassMapper.deleteAdministrativeClassByIds(ids);
    }

    /**
     * 删除行政班管理信息
     * 
     * @param id 行政班管理主键
     * @return 结果
     */
    @Override
    public int deleteAdministrativeClassById(String id)
    {
        return administrativeClassMapper.deleteAdministrativeClassById(id);
    }


}
